時系列データベース InfluxDB を Amazon Linux 2 にインストールする
こんにちは、菊池です。
時系列データを扱うOSSデータベース、InfluxDBを触る機会がありましたので実際にインストールから簡単な操作を紹介します。
InfluxDB
InfluxDBはInfluxData社が開発・提供する時系列データベースで、タイムスタンプに基づくデータの取り扱いに特化しています。時系列データベースとしては他に、re:Invent 2018で発表された Amazon Timestreamがあります。
InfluxDBには以下の3つの提供形態があります。
- InfluxDB Cloud
- InfluxDB
- InfluxDB Enterprise
InfluxDB CloudはDB as a Serviceとして提供されるフルマネージドサービスです。InfluxDBは自身の環境にインストールして実行できるOSS版で、InfluxDB Enterpriseはクラスタやエンタープライズ向けの管理機能、サポートを含む有償版です。今回は、InfluxDBを利用します。
InfluxDBの現時点での最新安定バージョンは v1.7.9を使いました。
インストールと実行
それではAmazon Linux 2にインストールしていきます。こちらから、各プラットフォーム向けのバイナリがダウンロード可能です。RHEL/CentOS向けのrmpをダウンロードして使いました。
$ wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9.x86_64.rpm $ sudo yum localinstall influxdb-1.7.9.x86_64.rpm
ひとまず、デフォルトのまま起動してみます。
$ sudo systemctl start influxdb $ sudo systemctl status influxdb ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled) Active: active (running) since 火 2019-11-19 04:53:00 UTC; 5s ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 2644 (influxd) CGroup: /system.slice/influxdb.service └─2644 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
起動できましたので、コマンドラインツールを使って接続します。
$ influx Connected to http://localhost:8086 version 1.7.9 InfluxDB shell version: 1.7.9 >
接続できました。公式ドキュメントに従って、データの操作をしてみます。まずはSHOW DATABASES
でデータベースを確認。
> SHOW DATABASES name: databases name ---- _internal >
新しくデータベースmydb
を作成し、移動します。
> CREATE DATABASE mydb > > SHOW DATABASES name: databases name ---- _internal mydb > > USE mydb Using database mydb >
データをINSERTしてみます。RDBのテーブルに相当するmeasurement
、cpu
に対し、key=value
の形式で各フィールドの値を入れます。
> INSERT cpu,host=serverA,region=us_west value=0.64
新しいmeasurement
であるcpu
が作成されていることが確認できます。
> SHOW measurements name: measurements name ---- cpu >
登録したデータはSQLライクに参照することができます。
> SELECT "host", "region", "value" FROM "cpu" name: cpu time host region value ---- ---- ------ ----- 1574158668462031724 serverA us_west 0.64 >
認証の有効化
起動したデフォルトの状態では、認証なしで接続ができてしまいますので、ユーザーを作成し接続時に認証を要求するようにします。
まずはCREATE USER
でユーザーを作成します。WITH ALL PRIVILEGES
をつけることで管理者権限をもつユーザーとして作成されます。
> CREATE USER skikuchi WITH PASSWORD 'password' WITH ALL PRIVILEGES
ユーザーの確認。
> SHOW USERS user admin ---- ----- skikuchi true
ユーザーの作成ができたので、設定ファイル/etc/influxdb/influxdb.conf
を変更し、認証を有効化します。
[http] auth-enabled = true
サーバーを再起動し、作成したユーザーで接続してみます。
$ influx -username skikuchi -password password Connected to http://localhost:8086 version 1.7.9 InfluxDB shell version: 1.7.9 >
認証を有効化し接続できました。
まとめ
時系列データベース、InfluxDBのインストールからごく簡単な操作、ユーザー認証の有効化を紹介しました。インストールから起動まで、特にハマるところなくシンプルな手順で進めることができました。公式ドキュメントの記載も充実しているので、取っ付きやすい製品という印象です。
今後引き続き、InfluxDBの機能を紹介していきたいと思います。